1. Field of Invention
The present invention pertains to the field of computer systems. More particularly, this invention relates to providing instruction execution hints to a processor.
2. Art Background
A computer system usually includes one or more processors which execute instructions. A processor may also be referred to as a central processing unit. A processor typically conforms to a macro-architecture which specifies an instruction set and a set of architectural registers, etc for code executed by the processor.
The code executed by a processor is usually referred to as object code. Typically, the object code executed by a processor is generated by a compiler. It is usually desirable to implement a compiler so that it generates object code in a manner that will enhance the speed at which the object code is executed by a processor. For example, it is common for a compiler to generate object code for a processor based on micro-architecture features of the processor such as on-chip caches, out-order processing capabilities, branch prediction capabilities, etc.
It is common for processor manufacturers to provide a family of processors that conform to a given macro-architecture. Processors in a family usually vary according to micro-architecture features such as on-chip caches, out-order processing capabilities, branch prediction capabilities, etc.
Unfortunately, object code which is compiled based on the micro-architecture features of one member of a processor family may suffer in performance when executed on another member of the family. For example, object code that includes pre-fetch instructions which are adapted to a processor having particular size of on-chip cache may hinder the performance of a processor having a smaller or non-existent on-chip cache.
Some prior systems use a re-compiler to translate object code which is optimized for one member of a processor family to another member of the processor family. Unfortunately, such object code translations usually alter object code sequences which can cause errors.